package com.catazy.wanandroid.common_base.base

import android.Manifest
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity
import com.catazy.library_statusbar.NotchScreenManager
import com.catazy.wanandroid.common_base.R
import com.catazy.wanandroid.common_base.util.SettingUtil
import com.catazy.wanandroid.common_base.util.StatusBarUtil

/**
 * 作者: Tao
 * 日期: 2024/4/10
 * 时间: 10:33
 * 描述: BaseActivity 基类
 */
open class BaseActivity : AppCompatActivity(){

    /**
     * 主题颜色
     */
    private var themeColor: Int = SettingUtil.getColor()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        NotchScreenManager.getInstance().setDisplayInNotch(this)
        initColor()
        observeViewModel()
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        // 返回键被点击，结束当前Activity
        if (item.itemId == android.R.id.home) {
            finish()
        }
        return super.onOptionsItemSelected(item)
    }

    /**
     * 观察ViewModel，子类可以重写该方法观察ViewModel
     */
    open fun observeViewModel() {
    }

    /**
     * 初始化主题颜色
     */
    open fun initColor(){
        // 获取主题颜色 根据是否是夜间模式来获取颜色
        themeColor = if (!SettingUtil.getIsNightMode()) {
            SettingUtil.getColor()
        } else {
            resources.getColor(R.color.colorPrimary)
        }
        // 设置状态栏颜色
        StatusBarUtil.setColor(this, themeColor, 0)
        // 设置ActionBar颜色
        if (this.supportActionBar != null) {
            this.supportActionBar?.setBackgroundDrawable(ColorDrawable(themeColor))
        }
    }

}